33ac3d0e90efa1836f59749b6fc52399d9c4ccb4,AngularJS/src/org/angularjs/index/AngularIndexUtil.java,AngularIndexUtil,resolve,#Project#String#String#,46

Before Change



  public static Entry resolve(final Project project, final String indexKey, final String lookupKey) {
    final Ref<Entry> result = Ref.create();
    FileBasedIndex.getInstance().processValues(AngularJSIndex.INDEX_ID, indexKey, null,
                                               new FileBasedIndex.ValueProcessor<TObjectIntHashMap<String>>() {
                                                 @Override
                                                 public boolean process(VirtualFile file, TObjectIntHashMap<String> descriptorNames) {
                                                   for (Object o : descriptorNames.keys()) {
                                                     if (lookupKey.equals(o)) {
                                                       result.set(new Entry(file, lookupKey, descriptorNames.get(lookupKey)));
                                                     }
                                                   }
                                                   return result.isNull();
                                                 }
                                               }, GlobalSearchScope.allScope(project)
    );
    return result.get();
  }
}

After Change


    final GlobalSearchScope scope = GlobalSearchScope.allScope(project);
    for (VirtualFile file : FileBasedIndex.getInstance().getContainingFiles(index, lookupKey, scope)) {
      final int id = FileBasedIndex.getFileId(file);
      FileBasedIndex.getInstance().processValues(JSEntryIndex.INDEX_ID, id, null, new FileBasedIndex.ValueProcessor<JSIndexEntry>() {
        @Override
        public boolean process(VirtualFile file, JSIndexEntry value) {
          return value.processAdditionalData(JavaScriptIndex.getInstance(project), index.toString(), lookupKey, new Processor<JSNamedElementProxy>() {
            @Override
            public boolean process(JSNamedElementProxy proxy) {
              if (lookupKey.equals(proxy.getName())) {
                result.set(proxy);
              }
              return result.isNull();
            }
          });
        }
      }, scope);
      if (!result.isNull()) break;
    }
    return result.get();